#include "IdentificadorParametro.h"

std::string IdentificadorParametro::getTipo()
{
    return this->tipo;
}

void IdentificadorParametro::setTipo(std::string tip)
{
    this->tipo = tip;
}

int IdentificadorParametro::getDeslocamento()
{
    return this->deslocamento;
}

void IdentificadorParametro::setDeslocamento(int des)
{
    this->deslocamento = des;
}

bool IdentificadorParametro::isPassagemReferencia()
{
    return this->passagem;
}

void IdentificadorParametro::setPassagemReferencia(bool pass)
{
    this->passagem = pass;
}

void IdentificadorParametro::exibir(std::ostream& pSaida)
{
    pSaida << "Identificador: "   << getIdentificador();
    pSaida << " | Categoria: ParametroFormal";
    pSaida << " | Nivel: "        << getNivel();
    pSaida << " | Procedimento: " << getProcedimento();
    pSaida << " | Tipo: "         << getTipo();
    pSaida << " | Deslocamento: " << getDeslocamento();
    pSaida << " | Passagem: "     << (isPassagemReferencia() == true ? "Referencia" : "Valor");
    pSaida << std::endl;
    
}

IdentificadorParametro::IdentificadorParametro(std::string pIdentificador, int pCategoria, int pNivel, std::string pProc, std::string pTipo, int desl, bool isPassagemRef)
                                             : Identificador(pIdentificador, pCategoria, pNivel, pProc)
{
    this->tipo         = pTipo;
    this->deslocamento = desl;
    this->passagem     = isPassagemRef;
}

